/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package GUI;

import DAO.ClienteJpaController;
import DAO.EnderecoJpaController;
import DAO.TelefoneJpaController;
import dominio.Cliente;
import dominio.Endereco;
import dominio.Telefone;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

class ModeloTabela extends AbstractTableModel implements ModelTable{
        /* O erro era o seguinte a variÃƒÂ¡vel abaixo estava sendo declarada e inicializada
         no construtor da classe por isso nÃƒÂ£o estava visÃƒÂ­vel.*/
        List <Cliente>  clientes =new ArrayList<Cliente>();

    public void setClientes(List<Cliente> cliente) {
        this.clientes = cliente ;
    }

        ModeloTabela(){
        }

        @Override
        public String getColumnName(int c){

            switch(c)
            {
                case 0: return "Nome";
                case 1: return "CPF";
                case 2: return "Observação";
                //case 3: return "Rua";
                //case 4: return "N°";
                //case 5: return "Cidade";
                //case 6: return "Bairro";
                //case 7: return "UF";
                //case 8: return "Telefone";

            }
            return null;
        }

        public int getColumnCount() {
            return 3;
        }

        public int getRowCount() {
           return clientes.size();
        }

        public Object getValueAt(int row, int col) {

            try
            {   
                Cliente c = clientes.get(row);
                EnderecoJpaController ende = new EnderecoJpaController();
                TelefoneJpaController tele = new TelefoneJpaController();
                Endereco end = ende.findEndereco(c.getCpf());
                Telefone tel = tele.findTelefone(c.getCpf());
            
                switch (col){
                    case 0: return c.getNome();
                    case 1: return c.getCpf();
                    case 2: return c.getObservacao();
                    /*case 3: return end.getRua();
                    case 4: return end.getNumero();
                    case 5: return end.getCidade();
                    case 6: return end.getBairro();
                    case 7: return end.getUf();
                    case 8: return tel.getTelefone();*/
                }
            }catch(NullPointerException e)
            {
                e.getStackTrace();
            }
            return null;
        }
    }

